This invention relates in general to systems and methods for distributing and accessing replicated services across a computer network. More specifically, this invention relates to computer environment constructs and methods of using such which allow for calling and executing computer objects distributed across a network in a way that distributes work across the network and/or across the objects.
Common Object Request Broker Architecture (CORBA) is a standard from the Object Management Group (OMG) for communicating between self-contained software modules which are distributed across a computer network. Such software modules are commonly referred to as objects. CORBA provides a software based mechanism for locating and accessing objects in a computer network. The basic function of CORBA involves a client program calling another program to perform a function supported by the called program, regardless of where the called program is located on a computer network.
Objects useful in relation to CORBA are defined by an Interface Definition Language (IDL) that describes the methods, or processes, that an object performs and the format of any data provided to or from the object. Such objects can be written in a variety of computer languages and executed by a variety of operating systems. By using an IDL common to two or more objects that provide similar functionality, any of the objects can be accessed to perform the supported function regardless of the language used to implement a particular object or even the platform executing the object. This allows access to objects from any portion of a computer network.
In operation, a client makes requests to a remote object supporting a CORBA IDL via an Object Request Broker (ORB). The ORB provides a proxy object in the client's address space, which creates an illusion that the remote object is local to the client. When the client calls a function of the object, the ORB sends a message to a server where the object is resident. The function is performed on the server and the results of the function are returned to the ORB. The ORB then converts the results to an object reply expected by the client.
Each server supporting CORBA compliant objects advertises the availability of such objects to the network through use of a naming service. Thus, by querying the naming service, a client can determine where on the network a particular CORBA compliant object resides. When a particular object is identified, its object reference can be requested by the client. While this operation allows for accessing objects across a network, it does not provide for distributing operational loads across the network and/or the objects. Furthermore, it does not provide fault tolerance in a way which maintains a distributed load.
Additional deficiencies in the prior art, and improvements in the present invention, are described below and will be recognized by those of ordinary skill in the art.